﻿@echo off
:: 在bat里有隐藏窗口的命令，很简单，只需要在代码头部加@echo. off代码就可以了。 


:: 调用设置当前前端口为utf-8 的编码格式函数
call:setDosCodingFormatUTF8


:: echo. 开始调用函数 >> debug.log  | TYPE debug.log

:: 获取当前脚本名字
::    获取当前批处理文件的全路径
set filePath=%~f0

for %%a in ("%filepath%") do (
    set str=%%~pda
    :: 文件名赋值
    set var=%%~nxa
)
::echo. 路径：%str%
::echo. 文件名：%var%
::pause

:: 日志文件名
::set logFileName=Template
set logFileName=%var%
    
::set flag="Test"
set flag="Run"
:: echo. flag=%flag% 
if %flag% == "Run" (
    echo. [INOF]执行流程控制函数
    call:processControlMain >> %logFileName%.log
    
    ) ELSE (
    echo. 执行测试函数 
    ::call:myDosFunc  >> debug.log
    call:processControlMain
    :: call:processControlMain >> debug.log
    :: call:processControlMain >> debug.log  | TYPE debug.log
    :: 注：加重定向输出>> debug.log  | TYPE debug.log 有时会报错
    :: 窗口暂停
    pause
    )

::--------------------------------------------------------
::-- 函数部分开始
::--------------------------------------------------------
:: 函数:
:myDosFunc
    echo.   here the myDosFunc function is executing a group of commands
    echo.   it could do a lot of things
goto:eof

:: 函数: 设置当前前端口为utf-8 的编码格式
:setDosCodingFormatUTF8
    :: 设置当前前端口为utf-8 的编码格式
    chcp 65001
goto:eof


:: 函数： 远程拉取更新指定txt文本中的一个或多个地址下所在文件夹下全部GIT项目
:pullFoldersGitProject
    echo. [INOF]进入pullCurrentFoldersGitProject函数
    echo. [INOF]接收传入参数的值 %1
    set pathparam=%1
    echo. [INOF]pathparam的值为 %pathparam%
    FOR /F " delims== " %%a IN ( %pathparam% ) DO (
        echo. [INOF]变量获得的变量值 （第一层循环）： %%a 
        :: 进行地址切换
        cd /d %%a
        echo.  当前正在运行时所在路径（第一层循环）： %cd%
       :: 记录当前的地址
        for /f "delims=" %%i in ('dir /ad/b "%a%" ') do ( 

            echo. [INOF]变量获得的变量值 （第二层循环）： %%i
            echo. [INOF]当前正在运行时所在路径（第二层循环）Git项目本地位置： %%a\%%i
            cd /d %%a\%%i
            :: 拉去git
            git pull
            :: 查看git最新(最后一次)提交记录的注释 格式为 提交日期 commit hash commit信息标题
            git show -s --format=%s 
        )
        
    )
goto:eof

:: 流程控制函数
:processControlMain
    :: 打印当前系统时间
    echo. Start Runing...

    echo. [INOF]%date%  %time:~0,-3% 
    :: 此处是你的代码
    :: ...
    :: 读取指定文件获取目录值
    set txtpath=pathAddress.txt
    :: 设置一个值用于作为全局接收返回值
    
    :: 执行读取函数
    call:pullFoldersGitProject %txtpath%
    
    
    ::call:pullCurrentFoldersGitProject

    :: 打印当前系统时间
    echo. [INOF]%date%  %time:~0,-3% 
    echo. The End.
    :: 暂停
     pause
goto:eof

::--------------------------------------------------------
::-- 函数部分结束
::--------------------------------------------------------
